package com.jy.wms.dao;

import com.jy.wms.common.base.BaseDao;
import com.jy.wms.pojo.*;
import io.swagger.models.auth.In;
import org.apache.ibatis.annotations.Param;
import java.util.List;

   /**
   * @ClassName: WmsBoxMapper.java
   * @Description: TODO(这里用一句话描述这个类的作用)
   * @Author Jane
   * @Date Wed Oct 25 10:02:09 CST 2017
   */
   public interface WmsBoxMapper extends BaseDao<WmsBox> {

       /**
        * 插入一条记录
        *
        * @param entity 实体对象
        * @return int
        */
       public Integer baseInsert(@Param("WmsBox") WmsBox entity);

       /**
        * 插入一条记录（匹配有值的字段）
        *
        * @param entity 实体对象
        * @return int
        */
       public Integer baseInsertSelective(@Param("WmsBox") WmsBox entity);

       /**
        * 删除（根据主键ID删除）
        *
        * @param ssfydid 所属发运订单Id
        * @return int
        */
       public Integer baseDeleteByPrimaryKey(@Param("ssfydid") String ssfydid);

       /**
        * 删除（根据ID 批量删除）
        *
        * @param idList 主键ID列表
        * @return int
        */
       public Integer baseDeleteBathPrimaryKeys(@Param("list") List<String> idList);


       /**
        * 分页查询
        *
        * @param entity 实体
        * @return List<WmsBox>
        */
       public List<WmsBox> baseSelectPage(@Param("WmsBox") WmsBox entity);

       /**
        * 查询（根据主键ID查询）
        *
        * @param id 主键ID
        * @return User
        */
       public WmsBox baseSelectByPrimaryKey(@Param("id") String id);

       /**
        * 查询（根据ID 批量查询）
        *
        * @param idList 主键ID列表
        * @return list
        */
       public Integer baseSelectBathPrimaryKeys(@Param("list") List<WmsBox> idList);

       /**
        * 修改 （匹配有值的字段）
        *
        * @param entity 主键ID列表
        * @return int
        */
       public Integer baseUpdateByPrimaryKeySelective(@Param("WmsBox") WmsBox entity);

       /**
        * 修改（根据主键ID修改）
        *
        * @param entity 主键ID列表
        * @return int
        */
       public Integer baseUpdateByPrimaryKey(@Param("WmsBox") WmsBox entity);

       /**
        * 查询发运单信息（根据发运单主键ID查询）_Jane
        *
        * @param id 发运单主键ID列表
        * @return int
        */
       public WmsShipmentOrder baseSelectBySokey(@Param("id") String id);

       /**
        * 查询未装箱的分配明细（根据发运单主键ID查询）_Jane
        *
        * @param id 发运单主键ID列表
        * @return int
        */
       public List<WmsDistribution> seachDistribution(@Param("id") String id);

       /**
        * 查询拆单明细（根据拆单主键ID查询）_Jane
        *
        * @param id 拆单主键主键ID列表
        * @return int
        */
       public WmsSplit seackSplit(@Param("id") String id);

       /**
        * 生成箱编号（根据箱编号查询是否存在查询）_Jane
        *
        * @param xbh 箱编号查询
        * @return int
        */
       public Integer selectCountXbh(@Param("xbh") String xbh);

       /**
        * 查找货品是否混放（根据货品Id）_Jane
        *
        * @param id 货品Id
        * @return int
        */
       public WmsGoodsType selectGoodsSfhf(@Param("id") String id);

       /**
        * 查找发运单下最大箱序号（根据发运单ID）_Jane
        *
        * @param ssfydid 所属发运单ID
        * @return int
        */
       public Integer seachMaxXxhBySsfydid(@Param("ssfydid") String ssfydid);

       /**
        * 查询散箱中未分配箱编号（根据发运单ID）_Jane
        *
        * @param ssfydid 所属发运单ID
        * @param xxh 箱序号
        * @return int
        */
       public List<WmsBox> seachNoXbhBySsfydid(@Param("ssfydid") String ssfydid,@Param("xxh") Integer xxh);
       /**
        * 查询总重量总体积（根据发运单ID）_Jane
        * @param ssfydid 所属发运单ID
        * @return int
        */
       public List<WmsBox> seachZtjAndZzl(@Param("ssfydid") String ssfydid);
       /**
        * 查询周转箱信息（根据所属货主ID_Jane
        * @param sshzid 所属货主Id
        * @return int
        */
       public List<WmsTurnoverBox> seachTurnoverMx(@Param("sshzid") String sshzid,@Param("ckid") String ckid);
       /**
        * 获取当前货主下最小周转箱_Jane
        * @param sshzid 所属货主Id
        * @return int
        */
       public WmsTurnoverBox seachZxtjBox(@Param("sshzid") String sshzid,@Param("ckid") String ckid);
       /**
        * 根据周转箱ID查询周转箱信息（根据周转箱ID_Jane
        * @param id 周转箱ID
        * @return int
        */
       public WmsTurnoverBox seachTurnoverXX(@Param("id") String id);
       /**
        * 查询货品的长宽高信息（根据货品id_Jane
        * @param hpid 货品ID
        * @return int
        */
       public WmsPackingDetailed seachGoodsMx(@Param("hpid") String hpid);
       /**
        * 根据发运单ID获取整箱最大箱序号_Jane
        * @param ssfydid 发运单ID
        * @return int
        */
       public Integer seachMaxXxh(@Param("ssfydid") String ssfydid);
       public List<WmsBox> seachSx(@Param("ssfydid") String ssfydid);
       //修改分配表中装箱状态
       public Integer updateDistribution(@Param("WmsDistribution") WmsDistribution wmsDistribution);
       /**
        * 查询最大箱序号的信息（根据发运单ID）_Jane
        * @param ssfydid 发运单ID
        * @return int
        */
       public List<WmsBox> seachBoxByMaxXxh(@Param("ssfydid") String ssfydid);
       /**
        * 查询最后一箱总重量总体积（根据发运单ID）_Jane
        * @param ssfydid 发运单ID
        * @return int
        */
       public WmsBox seachZhyxTj(@Param("ssfydid") String ssfydid);
       /**
        * 获取散箱的箱ID（根据发运单ID）_Jane
        * @param ssfydid 发运单ID
        * @return int
        */
       public List<String> selectByzzxid(@Param("ssfydid") String ssfydid);
       /**
        * 获取发运明细详细信息（根据发运单ID）_Jane
        * @param id 发运单明细ID
        * @return int
        */
       public List<WmsShipmentOrderDetailed> selectShipmentByMxid(@Param("ssfyddid") String id);
       /**
        * 获取发运明细装箱数量（根据发运单ID）_Jane
        * @param ssfymxid 发运单明细ID
        * @return int
        */
       public Integer selecBoxByMxid(@Param("ssfymxid") String ssfymxid);
       /**
        * 更新发运订单装箱状态（发运订单信息）_Jane
        * @param entity 发运单
        * @return int
        */
       public Integer updateShipmentOrder(@Param("WmsShipmentOrder") WmsShipmentOrder entity);
       /**
        * 查询装箱（发运单ID）_Jane
        * @param entity 发运单
        * @return int
        */
       public List<WmsBox> selectZxmxByFydid(@Param("WmsBox") WmsBox entity);
       /**
        * 查询装箱打印信息（发运单ID）_Jane
        * @param ssfydid 发运单ID
        * @return int
        */
       public List<WmsBox> selectDyxxByFydid(@Param("ssfydid") String ssfydid);
       /**
        * 查询装箱打印信息（发运单ID）_Jane
        * @param ssfydid 发运单ID
        * @param xbh 箱编号
        * @return int
        */
       public List<WmsBox> selectDyOneXxByFydid(@Param("ssfydid") String ssfydid,@Param("xbh") String xbh);
       /**
        * 最大箱序号（发运单ID）_Jane
        * @param ssfydid 发运单ID
        * @return int
        */
       public Integer boxMaxXh(@Param("ssfydid") String ssfydid);
   }

